//给定一个非空字符串，其中包含字母顺序打乱的英文单词表示的数字0-9。按升序输出原始的数字。 
//
// 注意: 
//
// 
// 输入只包含小写英文字母。 
// 输入保证合法并可以转换为原始的数字，这意味着像 "abc" 或 "zerone" 的输入是不允许的。 
// 输入字符串的长度小于 50,000。 
// 
//
// 示例 1: 
//
// 
//输入: "owoztneoer"
//
//输出: "012" (zeroonetwo)
// 
//
// 示例 2: 
//
// 
//输入: "fviefuro"
//
//输出: "45" (fourfive)
// 
// Related Topics 哈希表 数学 字符串 
// 👍 65 👎 0

  
package com.zwy.leetCode.editor.cn;
public class ReconstructOriginalDigitsFromEnglish{
    public static void main(String[] args) {
        Solution solution = new ReconstructOriginalDigitsFromEnglish().new Solution();
        
      }
      //leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public String originalDigits(String s) {
        int[] is = new int[26];
        for (int c : s.toCharArray()) {
            is[c - 'a']++;
        }
        int[] res = new int[10];
        res[0] = is['z' - 'a'];
        res[2] = is['w' - 'a'];
        res[4] = is['u' - 'a'];
        res[6] = is['x' - 'a'];
        res[8] = is['g' - 'a'];
        res[3] = is['h' - 'a'] - res[8];
        res[5] = is['f' - 'a'] - res[4];
        res[7] = is['s' - 'a'] - res[6];
        res[9] = is['i' - 'a'] - res[5] - res[6] - res[8];
        res[1] = is['n' - 'a'] - res[7] - res[9] - res[9];
        StringBuilder builder = new StringBuilder();
        for (int i = 0; i < 10; i++) {
            for (int j = 0; j < res[i]; j++) {
                builder.append(i);
            }
        }
        return builder.toString();

    }
}
//leetcode submit region end(Prohibit modification and deletion)

}